#if !defined(_INPUTPARAMETER_H)
#define _INPUTPARAMETER_H

#include "Parameter.h"
#include "SArgumentException.h"

CREATE_ALIAS( InputParameter );

/**
 * Class to store information about an input command parameter
 */
class DECLARATION_DLL InputParameter : public Parameter
{
	/**
	 * Creata an InputParameter of simple type.
	 */
	InputParameter(string name, string description, SType type) : Parameter(name, description, type)
	{
	}

	/**
	 * Creata an InputParameter of complex type.
	 */
	InputParameter(string name, string description, TypeDescriptorSp typeDescriptor) : Parameter(name, description, typeDescriptor)
	{
	}

public:

	/**
	 *	Factory method to create an InputParameter of simple type.
	 */
	static InputParameterSp Create(string name, string description, SType type);

	/**
 	 *	Factory method to create an InputParameter of complex type.
	 */
	static InputParameterSp Create(string name, string description, TypeDescriptorSp typeDescriptor);

};

#endif  //_INPUTPARAMETER_H
